#ifndef _PCIe_IF_H
#define _PCIe_IF_H

#include <systemc.h>
#include "PCIe_types.h"

class PCIe_if
: public sc_interface
{
public:
	virtual void
	PL_send_symbol(PCIe_id_t		id_,
				   PCIe_symbol_t	symbol_) = 0;

	virtual const bool
	DLL_send_sequence_number_byte(PCIe_id_t	id_,
								  byte		seq_num_) = 0;

	virtual const bool
	DLL_send_type_byte(PCIe_id_t	id_,
					   byte			type_byte_) = 0;

	virtual const bool
	DLL_send_data_byte(PCIe_id_t	id_,
					   byte			data_byte_) = 0;

	virtual const bool
	DLL_send_CRC_byte(PCIe_id_t	id_,
					  byte		CRC_byte_) = 0;

	virtual const bool
	DLL_send_LCRC_byte(PCIe_id_t	id_,
					   byte			LCRC_byte_) = 0;

	virtual void
	TL_send_header_byte(PCIe_id_t	id_,
						byte		header_byte_) = 0;

	virtual void
	TL_send_data_byte(PCIe_id_t	id_,
					  byte		data_byte_) = 0;

	virtual void
	TL_send_ECRC_byte(PCIe_id_t	id_,
					  byte		ECRC_byte_) = 0;
};

#endif
